/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package manejadores;

import entidades.Internet;
import interfaz.Entidad;
import interfaz.Manejador;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import persistencia.Conexion;

/**
 *
 * @author Snailin
 */
public class ManejadorDeInternet implements  Manejador {
      private Conexion conexion=null;
    private static ManejadorDeInternet instancia=null;
    private ResultSet rs=null;
    private PreparedStatement stmt=null;
    private ArrayList<Internet>internets=null;

    public static ManejadorDeInternet getInstancia() {
        if(instancia==null){
            instancia=new ManejadorDeInternet();
        }
        return instancia;
    }

    private ManejadorDeInternet(){
        conexion=Conexion.getInstancia();
    }

    public ArrayList<Internet>getInternets(){
        internets=new ArrayList<Internet>();

        String sql="SELECT * FROM internet";
        stmt=conexion.hacerEnunciado(sql);
        rs=conexion.hacerConsulta(sql);
        try {
            while (rs.next()) {
                Internet internet=new Internet(rs.getInt(1),rs.getString(2), rs.getString(3),rs.getString(4));
                internets.add(internet);

            }
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeInternet.class.getName()).log(Level.SEVERE, null, ex);
        }


         return internets;

    }

    public int agregar(Entidad internet) {
        int fila=0;
        String sql="INSERT INTO internet (id_internet, tipo_internet, statu, ultima_fecha_supervision)VALUES(0, ?, ?, ?)";
        stmt=conexion.hacerEnunciado(sql);
        try {
            stmt.setString(1, ((Internet) (internet)).getTipoInternet());
            stmt.setString(2, ((Internet) (internet)).getStatus());
            stmt.setString(3, ((Internet) (internet)).getUltimaFechaSupervision());
            fila=stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeInternet.class.getName()).log(Level.SEVERE, null, ex);
        }
        return fila;
    }

    public int eliminar(int id) {
           int fila=0;
        String sql="DELETE FROM  internet WHERE id_internet = ?";
        stmt=conexion.hacerEnunciado(sql);
        try {
            stmt.setInt(1, id);
            fila = stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeInternet.class.getName()).log(Level.SEVERE, null, ex);
        }
        return fila;
    }

    public int modificar(Entidad internet, int id) {
        int fila=0;
        String sql="UPDATE internet SET tipo_internet = ?, statu = ?, ultima_fecha_supervision = ? WHERE id_internet = ?";
        stmt=conexion.hacerEnunciado(sql);
              try {
            stmt.setString(1, ((Internet) (internet)).getTipoInternet());
            stmt.setString(2, ((Internet) (internet)).getStatus());
            stmt.setString(3, ((Internet) (internet)).getUltimaFechaSupervision());
            stmt.setInt(1, id);
            fila=stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeInternet.class.getName()).log(Level.SEVERE, null, ex);
        }
        return fila;
    }

    public int getId(String nombre){
       int id=0;
        String sql ="SELECT id_internet FROM internet WHERE tipo_internet= '"+nombre+"'";
        stmt=(PreparedStatement)conexion.hacerEnunciado(sql);
        rs=conexion.hacerConsulta(sql);
        try {
            while (rs.next()) {
                id=Integer.parseInt (rs.getString(1));
            }
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeSupervisor.class.getName()).log(Level.SEVERE, null, ex);
        }

       return id;
    }

}
